package com.danciyixue.boot.dcyx.model.form;

import java.io.Serial;
import java.io.Serializable;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDateTime;
import com.fasterxml.jackson.annotation.JsonFormat;
import jakarta.validation.constraints.*;

/**
 * 测试结果记录表单对象
 *
 * @author youlaitech
 * @since 2025-06-15 16:31
 */
@Getter
@Setter
@Schema(description = "测试结果记录表单对象")
public class TestRecordsForm implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    @Schema(description = "测试记录ID")
    private Long id;

    @Schema(description = "系列ID")
    private Long seriesId;

    @Schema(description = "教材ID")
    private Long programId;

    @Schema(description = "单元ID")
    private Long unitId;

    @Schema(description = "用户ID")
    @NotNull(message = "用户ID不能为空")
    private Long userId;

    @Schema(description = "所属测试项ID")
    @NotNull(message = "所属测试项ID不能为空")
    private Long testId;

    @Schema(description = "耗时（秒）")
    private Integer timeConsuming;

    @Schema(description = "得分")
    @NotNull(message = "得分不能为空")
    private Integer score;

    @Schema(description = "题数")
    private Integer questionNumber;

    @Schema(description = "备注")
    @Size(max=65535, message="备注长度不能超过65535个字符")
    private String remark;

    @Schema(description = "测试类型")
    private Integer type;

    @Schema(description = "学习ID")
    private Long studyId;

    @Schema(description = "错误单词ID列表,逗号分隔")
    @NotBlank(message = "错误单词ID列表,逗号分隔不能为空")
    @Size(max=65535, message="错误单词ID列表,逗号分隔长度不能超过65535个字符")
    private String wrongWordIds;

    @Schema(description = "正确单词ID列表,逗号分隔")
    @NotBlank(message = "正确单词ID列表,逗号分隔不能为空")
    @Size(max=65535, message="正确单词ID列表,逗号分隔长度不能超过65535个字符")
    private String rightWordIds;

    @Schema(description = "未选择单词ID列表,逗号分隔")
    @NotBlank(message = "未选择单词ID列表,逗号分隔不能为空")
    @Size(max=65535, message="未选择单词ID列表,逗号分隔长度不能超过65535个字符")
    private String unchooseWordIds;

    @Schema(description = "状态")
    private Integer status;

    @Schema(description = "学生ID")
    private Long studentId;

    @Schema(description = "创建者")
    private Long createUser;

    @Schema(description = "更新者")
    private Long updateUser;


}
